Tika结合Tesseract 您所在的位置:网站首页 python tika Tika结合Tesseract

Tika结合Tesseract

2024-06-18 08:40| 来源: 网络整理| 查看: 265

 OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向。可惜国内的科研院所,基本没有几个高识别率的训练集——笔者联系过北京语言大学研究生一篇论文的作者,他们论文说有%90的正确识别率,结果只做了20个笔画简单的汉字(20/6753 = %0.3 常用简体汉字的千分之三),然后找了20个学生,各自手写了一遍。真的是为了论文而论文,而且很会选择样本(小而简单)

斯坦福大学有个工程项目,专门做中文汉字的识别——欧美发达国家的科研院所更有研究精神

 提高识别率,训练集是关键!

 提高识别率,训练集是关键!!

 提高识别率,训练集是关键!!!

下载训练集—traineddata请移步:

https://github.com/tesseract-ocr/tessdata

中文请选如下4个:

chi_sim.traineddata (简体— 对于宋体,像素>= 300dpi:识别率高达%100,同时对英文及阿拉伯数字识别率高达百分之90以上)

chi_sim_vert.traineddata (简体,竖排)

chi_tra.traineddata (繁体)

chi_tra_vert.traineddata(繁体,竖排)【CoderBaby】

 如何做自己的测试数据集

请参考官网: how to train tesseract

经过测试得出如下结论:

对于宋体,白色背景,非倾斜等,像素大于等于300dpi—识别率%100英文和数字,识别率超过90%特殊字符识别率不高像素太低,识别率急剧下降多种背景颜色变化,识别率极低字体换成草书等,识别率大幅降低电影屏幕字幕和网页截图识别率较低扫描件如果字体太淡,太小,完全识别不出来提高识别率,需要自己做训练集,工作量巨大的体力活(简体汉字最少6753个,混合一些复杂的,至少要10000个字符;不同字体要重新做,因为本质上是图形几何计算,国内科研院所和开源的做的不多)Java源码实现,tika结合Tesseract-OCR

(1)源码如下(支持多个图片识别)

代码语言:javascript复制 @Test public void testCode() throws IOException, SAXException, TikaException, InterruptedException { List fileNames = new ArrayList(); fileNames.add("chi_eng.png"); fileNames.add("chi_eng01.png"); fileNames.add("chi_old.png"); fileNames.add("chi-scan-75dpi.jpg"); fileNames.add("chi-scan-100dpi.jpg"); fileNames.add("chi-scan-300dpi.jpg"); fileNames.add("chi-smartphone.jpg"); fileNames.add("chi-subtitle-v1.jpg"); fileNames.add("english00.png"); fileNames.add("pdf_shaomiao.png"); fileNames.add("test.tiff"); fileNames.add("weather.png"); // 转载请注明出处:https://www.cnblogs.com/NaughtyCat/p/tika-support-Tesseract-OCR-with-source-code-and-test-data.html TesseractOCRParser parser = new TesseractOCRParser(); TesseractOCRConfig config = new TesseractOCRConfig(); // 设置简体中文训练集 config.setLanguage("chi_sim"); // 设置Tesseract 安装路径 config.setTesseractPath("C:/Program Files/Tesseract-OCR"); // 设置train data 路径 config.setTessdataPath("C:/Program Files/Tesseract-OCR/tessdata"); ParseContext context = new ParseContext(); context.set(TesseractOCRConfig.class, config); context.set(TesseractOCRParser.class, parser); fileNames.forEach(filename -> { BodyContentHandler handler = new BodyContentHandler(); File file = new File("E:/tika/testData" + File.separator + filename); if (file.exists()) { Metadata metadata = new Metadata(); try (InputStream stream = new FileInputStream(file)) { parser.parse(stream, handler, metadata, context); } catch (Exception e) { } handler.toString(); } }); } }测试数据(图片)说明及下载地址

具体说明及测试效果请参见:https://ocr.space/blog/2015/03/best-ocr-software-for-chinese.html

相关测试图片请参见:https://github.com/A9T9/OCR-Benchmark

(2)原始图片及效果 ()

基于“chi_sim.traineddata ”— 即简体中文训练集

图1

转换效果如下:

【结论】

300dpi,识别率:%100

图2

转换效果如下:

Brief history

Tesseractwes orginally developed at HewlettPackard Laboratones Bristol and

atHewettPackard Co Greeley Colorado beween 1985 and 1994 wthsome

more changes made in 1996 to portto Windows and some C++zing in1998

In2005 Tesseract was open sourced by HP Since 2006 itis developed by Goosgle

Thelatest (LSTM based]j stableversionis4.10, released on July 7.2019.Latest source codes avaable from

master branch on GlHub.Openissues can be foundin ssue racker and Planning iki

Thelatest35 version 5 3.05.02 released onjune 19,2018.Latestsource code for3.055 avaable from

305 branch on GlHHub.There sno development forthisversion,butitcan be used forspecial cases .

see Regression offeatures from 30x

See Release Notes and Change Log formore detas ofthe releases-

Installing Tesseract

You can ettherInstall Tesseractvia prepulltbinary package or pulld iLfrom sourcey

Supported Complersare:

* GCC48 and above

* ang34and above

* MSVC 2015.2017.2019

Othercompllersmightwork butare notofially supportedl

Running Tesseract

Basiccommand line usage:

tesseract inagenane outputbase -1 ang】 --osn ocrenginenode--psn pagesegnode

configfiles...

Formore information aboutthe various command line options use esseract --henp or man tesseract .

Examples can befoundin thewiki

For developers

Developers can use Tbtessaract Cor

【结论】

英文,特殊符号等会识别失败。识别率:>%80

图3.

转换效果如下:

E g 气

Even as Tvanja praised 8e parties Envoyed i 功 i5 7el gzamt7 comgpi 地 08

Qchieveze1 Q 7W7Der- Ofsocial media lsers appeared crilical of er as-

Sesszet 0f 加 e Trip adiistration「5 role 加 功 i5 endeavou7

IBM 表 示 不 服 ,Google 不 care。 下 而 让 我 们 逐 字 逐 句 来 看 他 们 的 论 文

吧 , 对 于 争 论 的 事 情 , 自 己 下 功 夫 搞 清 楚 。

松 贵 莹 坊 办 少

忠 : https:/ww.cnblogs-com/NaughtyCatpytranslate-of-google-

Quantum-supremacy-article-published-on-nature.html

Quantum supremacy using

a programmable

superconducting

processor

基 于 可 编 程 的 超 导 处 理 器 实 现 的 量 子 霸

动 关 盘 源 ,https://doorg/10.1038/s41586-019-1666-5

煌 收 船 2019 乐 7 历 20 历

旋 准 8 船 2019 乐 9 历 20 厂

坊 终 发 疗 2019 知 10 月 23 厅

Abstract

引 言

量 子 计 算 机 吹 牛 遢 说 , 对 于 特 定 的 计 算 任 务 , 基 于 量 子 处 理 器 的 计 算

机 , 其 速 度 相 较 于 经 典 处 理 器 呈 指 数 级 增 长 。 根 本 的 挑 战 在 于 构 建 一

【结论】

宋体,加粗,黑色——识别率%100;倾斜,绿色等——识别率:%70

图4(扫描件).

转换效果如下:

节 P a

为客户服务是华为存在的睢一理由” 从 公 司 层 面

看 , 为客户创造价值的主业务流只有一个!

Ipo - nisgniedProductDevelopment

B croeis PaFA 4 辜蒙扁)

Unc - LomdTocash

芸 a npe waa8 2 菅墨

E Ig - ssueToResoliton 林

P L a 颤〉

n i t t

6 P: 01

IP0 主 业 务 流 包 括 : MW 流 程 、0R 流 程 、IPD 流 程

D

4 一

【结论】

pdf扫描件,只有比较大,比较粗的字能识别出来,颜色较淡的识别不出来

识别率:约%10

 图5.

转化效果如下:

大 行 佳 孔 当 自 弼 不 。

巧 者 劳 而 春 者 忱 , 无 能 者 无 所 必 , 作 食 而 邀

游 , 陆 若 不 系 之 舟 。

Chacgyuisdt.

124565.

12256 dogdogunnn

【结论】

汉字、英文、数字混合

识别率:%60~%70

图6(天气网页截图)

转换效果如下:

L f

全 国 > 囚 川 > 尿 膳 > 坂 区

今 夺 伟 8-15 天

llc/4rc

208 238 028 058

人 [ [ 92

s

c E E

无 RR 无 RR 无 RR 无 RR

< < <



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有